package zgrjb.snbq.teach_platform.dto.model;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 智能任务队列表 DO
 * 对应数据库表：task_queue
 * 
 * @author system
 * @since 2024-12-28
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@TableName("task_queue")
public class TaskQueueDO {

    /**
     * 任务ID
     */
    private Long id;

    /**
     * 用户ID
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 任务类型：exam,assignment,grading,review
     */
    @TableField("task_type")
    private String taskType;

    /**
     * 任务标题
     */
    private String title;

    /**
     * 任务描述
     */
    private String description;

    /**
     * 关联资源ID
     */
    @TableField("source_id")
    private Long sourceId;

    /**
     * 资源类型：exam,assignment,course
     */
    @TableField("source_type")
    private String sourceType;

    /**
     * 优先级：1-低，2-中，3-高，4-紧急
     */
    private Integer priority;

    /**
     * 状态：1-待处理，2-进行中，3-已完成，4-已过期
     */
    private Integer status;

    /**
     * 截止时间
     */
    @TableField("due_time")
    private LocalDateTime dueTime;

    /**
     * 完成时间
     */
    @TableField("completion_time")
    private LocalDateTime completionTime;

    /**
     * 提醒次数
     */
    @TableField("reminder_count")
    private Integer reminderCount;

    /**
     * 是否自动生成：0-手动，1-自动
     */
    @TableField("auto_generated")
    private Integer autoGenerated;

    /**
     * 扩展数据
     */
    private String metadata;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;
} 